;
;          bios_1.txt
;    
;
;----------------------------------------------
  .cseg
   org (restt+int_vectors_syze)  ;    
 init:
  mov a,P3
  jb ACC.KEY_EA,init_plus
  clr flags.KEY_EA
  ajmp re_init ;    /
 init_plus:
	mov r0,#ramend ;      (mcs51)
	clr a
 cleen:
	mov @r0,a
	djnz r0,cleen
  mov flags,#0xFF
	mov sp,#(ctp_tx+2) ;     
	      ;   
	mov auxr,#(1<<dps) ;    ALE ( MOVX/MOVC )
  mov a,#0xFF
	mov P1,a
  mov P3,a
;
;----------------------------------------------
;
;   
;
  clr a
  mov TCON,a
  mov TL0,a
  mov TH0,a
  mov a,#tr_spid ;     
  mov TL1,a
  mov TH1,a
  mov TMOD,#0b00100011
;  anl PCON,#(1<<POF) ; clr SMOD (  52)
  setb SM1 ;  1   
  setb PS
  setb PT1 ;   
  setb ET1 ;     
         ;    TH1
;
; /0 -  3
; TH0 -      
; IRQ_T1 -    
;    
;     /12
;
; TL0  / 
;      TR0,    /INT0
;   IRQ_TO
;
; /1  2 ( )  
;     9600  
; USART
;    /12
;
; USART / 8    9600  
;    -
;
; 
;  TF1 -  
;  RI/TI -  
;  TF0 -  
;
;----------------------------------------------
;     
;    
;
   mov cnts1,#sys_clc2 ;   0,01 
   mov wtm1,#10 ; N*0,01S   en_wtm1=0 !!
;
   setb TR1 ;     
   setb ES ;    
 re_init:
   setb EA ;   (  TF1);
;
;----------------------------------------------
;
 echo_rst:
   HL4_OFF
   WAITT 100
   HL4_ON
   WAITT 10
   HL4_OFF
   WAITT 20
   HL4_ON
   WAITT 10
   HL4_OFF
   WAITT 20
   HL4_ON ;    HL4(EL)
   WAITT 10
   HL4_OFF
   WAITT 150
   HL4_ON
   mov a,P3
   jnb ACC.KEY_EA,irpp
   LPRINT str8 ;   
   WAIT_TOF
   sjmp wait_Son1
 irpp:
   LPRINT str9 ;   /
   WAIT_TOF
 wait_Son1:
   LPRINT str0
   WAIT_TOF
   WAITT 50
 wait_Son:
   mov a,P3
   jb ACC.S_IN,wait_Son ;   
   WAITT 10
 wait_Soff:
   mov a,P3
   jnb ACC.S_IN,wait_Soff ;   
   WAITT 10
   HL4_OFF
   WAITT 100
   HL4_ON
   WAITT 20
   LPRINT str4 ;    
   WAIT_TOF
   WAITT 100
  acall bottle 
;----------------------------------------------
;
;      \
;  
;    ap_fill=0     \
;                        
;    glob_er=?    " "
;    eof_ldr=1/?     "  "
;
;    
;  boot_addr+1:boot_addr
;
;----------------------------------------------
;   
     acall proc_txd_init
      WAIT_TOF ;     
      jbc eof_ldr,work_start
      clr glob_er
     ajmp echo_rst
;--------------------------------------
 work_start:
       ;    0xFFF0
       mov dptr,#key_proc
       mov r0,#(poz_1-poz_0)
       mov r1,#0
 lp_00:
       mov a,r1
       acall rekey
       movx @dptr,a
       inc dptr
       inc r1
       djnz r0,lp_00
       sjmp poz_1
 rekey:
      inc a
      movc a,@a+pc
      ret
 poz_0:
      clr flags.KEY_EA ;   =
             ; \  ,    
             ;   00000\
      mov P3,flags
      clr a
      jmp @a+dptr
      nop
 poz_1:
       mov DPL,boot_adr
       mov DPH,boot_adr+1;  DPTR  boot_addr
       mov a,dpl
       jnz poz_2
       mov a,dph
       jnz poz_2
     clr EA ; DI       
           ;  
     SEL_RB 0 ;     RB 0
     ljmp key_proc
 poz_2:
     ljmp key_proc+2 ;   ,
               ;            00000
               ;   =   !!!
               ;---
;